{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "c2d7e66c",
   "metadata": {},
   "source": [
    "## 13.11. 全卷积网络"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "df03953b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[WARNING] ME(89670:47623503916416,MainProcess):2023-03-03-02:55:21.452.349 [mindspore/common/api.py:840] 'mindspore.ms_class' will be deprecated and removed in a future version. Please use 'mindspore.jit_class' instead.\n",
      "[WARNING] ME(89670:47623503916416,MainProcess):2023-03-03-02:55:21.652.203 [mindspore/common/api.py:694] 'mindspore.ms_function' will be deprecated and removed in a future version. Please use 'mindspore.jit' instead.\n",
      "[WARNING] ME(89670:47623503916416,MainProcess):2023-03-03-02:55:21.667.855 [mindspore/common/api.py:694] 'mindspore.ms_function' will be deprecated and removed in a future version. Please use 'mindspore.jit' instead.\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "import mindspore\n",
    "import mindcv\n",
    "from mindspore import nn\n",
    "from mindspore.ops import functional as F\n",
    "from d2l import mindspore as d2l\n",
    "mindspore.set_context(device_target='GPU')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "bdda8770",
   "metadata": {},
   "source": [
    "### 13.11.1. 构造模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "33c99ec6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[SequentialCell<\n",
       "   (0): BasicBlock<\n",
       "     (conv1): Conv2d<input_channels=256, output_channels=512, kernel_size=(3, 3), stride=(2, 2), pad_mode=pad, padding=1, dilation=(1, 1), group=1, has_bias=False, weight_init=normal, bias_init=zeros, format=NCHW>\n",
       "     (bn1): BatchNorm2d<num_features=512, eps=1e-05, momentum=0.9, gamma=Parameter (name=layer4.0.bn1.gamma, shape=(512,), dtype=Float32, requires_grad=True), beta=Parameter (name=layer4.0.bn1.beta, shape=(512,), dtype=Float32, requires_grad=True), moving_mean=Parameter (name=layer4.0.bn1.moving_mean, shape=(512,), dtype=Float32, requires_grad=False), moving_variance=Parameter (name=layer4.0.bn1.moving_variance, shape=(512,), dtype=Float32, requires_grad=False)>\n",
       "     (relu): ReLU<>\n",
       "     (conv2): Conv2d<input_channels=512, output_channels=512, kernel_size=(3, 3), stride=(1, 1), pad_mode=pad, padding=1, dilation=(1, 1), group=1, has_bias=False, weight_init=normal, bias_init=zeros, format=NCHW>\n",
       "     (bn2): BatchNorm2d<num_features=512, eps=1e-05, momentum=0.9, gamma=Parameter (name=layer4.0.bn2.gamma, shape=(512,), dtype=Float32, requires_grad=True), beta=Parameter (name=layer4.0.bn2.beta, shape=(512,), dtype=Float32, requires_grad=True), moving_mean=Parameter (name=layer4.0.bn2.moving_mean, shape=(512,), dtype=Float32, requires_grad=False), moving_variance=Parameter (name=layer4.0.bn2.moving_variance, shape=(512,), dtype=Float32, requires_grad=False)>\n",
       "     (down_sample): SequentialCell<\n",
       "       (0): Conv2d<input_channels=256, output_channels=512, kernel_size=(1, 1), stride=(2, 2), pad_mode=same, padding=0, dilation=(1, 1), group=1, has_bias=False, weight_init=normal, bias_init=zeros, format=NCHW>\n",
       "       (1): BatchNorm2d<num_features=512, eps=1e-05, momentum=0.9, gamma=Parameter (name=layer4.0.down_sample.1.gamma, shape=(512,), dtype=Float32, requires_grad=True), beta=Parameter (name=layer4.0.down_sample.1.beta, shape=(512,), dtype=Float32, requires_grad=True), moving_mean=Parameter (name=layer4.0.down_sample.1.moving_mean, shape=(512,), dtype=Float32, requires_grad=False), moving_variance=Parameter (name=layer4.0.down_sample.1.moving_variance, shape=(512,), dtype=Float32, requires_grad=False)>\n",
       "       >\n",
       "     >\n",
       "   (1): BasicBlock<\n",
       "     (conv1): Conv2d<input_channels=512, output_channels=512, kernel_size=(3, 3), stride=(1, 1), pad_mode=pad, padding=1, dilation=(1, 1), group=1, has_bias=False, weight_init=normal, bias_init=zeros, format=NCHW>\n",
       "     (bn1): BatchNorm2d<num_features=512, eps=1e-05, momentum=0.9, gamma=Parameter (name=layer4.1.bn1.gamma, shape=(512,), dtype=Float32, requires_grad=True), beta=Parameter (name=layer4.1.bn1.beta, shape=(512,), dtype=Float32, requires_grad=True), moving_mean=Parameter (name=layer4.1.bn1.moving_mean, shape=(512,), dtype=Float32, requires_grad=False), moving_variance=Parameter (name=layer4.1.bn1.moving_variance, shape=(512,), dtype=Float32, requires_grad=False)>\n",
       "     (relu): ReLU<>\n",
       "     (conv2): Conv2d<input_channels=512, output_channels=512, kernel_size=(3, 3), stride=(1, 1), pad_mode=pad, padding=1, dilation=(1, 1), group=1, has_bias=False, weight_init=normal, bias_init=zeros, format=NCHW>\n",
       "     (bn2): BatchNorm2d<num_features=512, eps=1e-05, momentum=0.9, gamma=Parameter (name=layer4.1.bn2.gamma, shape=(512,), dtype=Float32, requires_grad=True), beta=Parameter (name=layer4.1.bn2.beta, shape=(512,), dtype=Float32, requires_grad=True), moving_mean=Parameter (name=layer4.1.bn2.moving_mean, shape=(512,), dtype=Float32, requires_grad=False), moving_variance=Parameter (name=layer4.1.bn2.moving_variance, shape=(512,), dtype=Float32, requires_grad=False)>\n",
       "     >\n",
       "   >,\n",
       " GlobalAvgPooling<>,\n",
       " Dense<input_channels=512, output_channels=1000, has_bias=True>]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pretrained_net = mindcv.create_model('resnet18', pretrained=True)\n",
    "list(pretrained_net.cells())[-3:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "1ef551ce",
   "metadata": {},
   "outputs": [],
   "source": [
    "net = nn.SequentialCell(*list(pretrained_net.cells())[:-2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "4f6c7983",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(1, 512, 10, 15)"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X = d2l.rand((1, 3, 320, 480))\n",
    "net(X).shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "01ae1b2d",
   "metadata": {},
   "outputs": [],
   "source": [
    "num_classes = 21\n",
    "net = nn.SequentialCell(*list(pretrained_net.cells())[:-2],\n",
    "                        nn.Conv2d(512, num_classes, kernel_size=1),\n",
    "                        nn.Conv2dTranspose(num_classes, num_classes,\n",
    "                                    kernel_size=64, padding=16, stride=32, pad_mode='pad')\n",
    "                       )"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fccb8d3a",
   "metadata": {},
   "source": [
    "### 13.11.2. 初始化转置卷积层"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "db4e6369",
   "metadata": {},
   "outputs": [],
   "source": [
    "def bilinear_kernel(in_channels, out_channels, kernel_size):\n",
    "    factor = (kernel_size + 1) // 2\n",
    "    if kernel_size % 2 == 1:\n",
    "        center = factor - 1\n",
    "    else:\n",
    "        center = factor - 0.5\n",
    "    og = (d2l.arange(kernel_size).reshape(-1, 1),\n",
    "          d2l.arange(kernel_size).reshape(1, -1))\n",
    "    filt = (1 - d2l.abs(og[0] - center) / factor) * \\\n",
    "           (1 - d2l.abs(og[1] - center) / factor)\n",
    "    weight = d2l.zeros((in_channels, out_channels,\n",
    "                          kernel_size, kernel_size))\n",
    "    weight[list(range(in_channels)), list(range(out_channels)), :, :] = filt\n",
    "    return weight"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "cc769365",
   "metadata": {},
   "outputs": [],
   "source": [
    "conv_trans = nn.Conv2dTranspose(3, 3, kernel_size=4, padding=1, stride=2, pad_mode='pad',\n",
    "                                has_bias=False)\n",
    "conv_trans.weight.set_data(bilinear_kernel(3, 3, 4));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "76f1a14d",
   "metadata": {},
   "outputs": [],
   "source": [
    "# ToTensor()输出为[0.0, 1.0]范围内且具有<C, H, W>格式的numpy数组\n",
    "img = mindspore.dataset.vision.ToTensor()(d2l.Image.open('../img/catdog.jpg')) \n",
    "img = d2l.tensor(img)\n",
    "X = img.unsqueeze(0)\n",
    "Y = conv_trans(X)\n",
    "out_img = Y[0].permute(1, 2, 0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "4709b662",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "input image shape: (561, 728, 3)\n",
      "output image shape: (1122, 1456, 3)\n"
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"226.708824pt\" height=\"173.415579pt\" viewBox=\"0 0 226.708824 173.415579\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-03-03T02:55:29.793557</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 173.415579 \n",
       "L 226.708824 173.415579 \n",
       "L 226.708824 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 39.65 149.537454 \n",
       "L 219.508824 149.537454 \n",
       "L 219.508824 10.937454 \n",
       "L 39.65 10.937454 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p25e3df5463)\">\n",
       "    <image xlink:href=\"data:image/png;base64,\n",
       "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\" id=\"image622379bb68\" transform=\"scale(1 -1) translate(0 -138.96)\" x=\"40\" y=\"-10.455579\" width=\"180\" height=\"138.96\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <defs>\n",
       "       <path id=\"m4d784ac248\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m4d784ac248\" x=\"39.711765\" y=\"149.537454\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(36.530515 164.135892) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m4d784ac248\" x=\"101.476471\" y=\"149.537454\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 500 -->\n",
       "      <g transform=\"translate(91.932721 164.135892) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-35\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m4d784ac248\" x=\"163.241176\" y=\"149.537454\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 1000 -->\n",
       "      <g transform=\"translate(150.516176 164.135892) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_4\">\n",
       "      <defs>\n",
       "       <path id=\"m858c29fe28\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m858c29fe28\" x=\"39.65\" y=\"10.999219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 0 -->\n",
       "      <g transform=\"translate(26.2875 14.798438) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m858c29fe28\" x=\"39.65\" y=\"35.705101\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 200 -->\n",
       "      <g transform=\"translate(13.5625 39.50432) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m858c29fe28\" x=\"39.65\" y=\"60.410983\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 400 -->\n",
       "      <g transform=\"translate(13.5625 64.210202) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
       "L 825 1625 \n",
       "L 2419 1625 \n",
       "L 2419 4116 \n",
       "z\n",
       "M 2253 4666 \n",
       "L 3047 4666 \n",
       "L 3047 1625 \n",
       "L 3713 1625 \n",
       "L 3713 1100 \n",
       "L 3047 1100 \n",
       "L 3047 0 \n",
       "L 2419 0 \n",
       "L 2419 1100 \n",
       "L 313 1100 \n",
       "L 313 1709 \n",
       "L 2253 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m858c29fe28\" x=\"39.65\" y=\"85.116866\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 600 -->\n",
       "      <g transform=\"translate(13.5625 88.916085) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
       "Q 1688 2584 1439 2293 \n",
       "Q 1191 2003 1191 1497 \n",
       "Q 1191 994 1439 701 \n",
       "Q 1688 409 2113 409 \n",
       "Q 2538 409 2786 701 \n",
       "Q 3034 994 3034 1497 \n",
       "Q 3034 2003 2786 2293 \n",
       "Q 2538 2584 2113 2584 \n",
       "z\n",
       "M 3366 4563 \n",
       "L 3366 3988 \n",
       "Q 3128 4100 2886 4159 \n",
       "Q 2644 4219 2406 4219 \n",
       "Q 1781 4219 1451 3797 \n",
       "Q 1122 3375 1075 2522 \n",
       "Q 1259 2794 1537 2939 \n",
       "Q 1816 3084 2150 3084 \n",
       "Q 2853 3084 3261 2657 \n",
       "Q 3669 2231 3669 1497 \n",
       "Q 3669 778 3244 343 \n",
       "Q 2819 -91 2113 -91 \n",
       "Q 1303 -91 875 529 \n",
       "Q 447 1150 447 2328 \n",
       "Q 447 3434 972 4092 \n",
       "Q 1497 4750 2381 4750 \n",
       "Q 2619 4750 2861 4703 \n",
       "Q 3103 4656 3366 4563 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-36\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m858c29fe28\" x=\"39.65\" y=\"109.822748\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 800 -->\n",
       "      <g transform=\"translate(13.5625 113.621967) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-38\" d=\"M 2034 2216 \n",
       "Q 1584 2216 1326 1975 \n",
       "Q 1069 1734 1069 1313 \n",
       "Q 1069 891 1326 650 \n",
       "Q 1584 409 2034 409 \n",
       "Q 2484 409 2743 651 \n",
       "Q 3003 894 3003 1313 \n",
       "Q 3003 1734 2745 1975 \n",
       "Q 2488 2216 2034 2216 \n",
       "z\n",
       "M 1403 2484 \n",
       "Q 997 2584 770 2862 \n",
       "Q 544 3141 544 3541 \n",
       "Q 544 4100 942 4425 \n",
       "Q 1341 4750 2034 4750 \n",
       "Q 2731 4750 3128 4425 \n",
       "Q 3525 4100 3525 3541 \n",
       "Q 3525 3141 3298 2862 \n",
       "Q 3072 2584 2669 2484 \n",
       "Q 3125 2378 3379 2068 \n",
       "Q 3634 1759 3634 1313 \n",
       "Q 3634 634 3220 271 \n",
       "Q 2806 -91 2034 -91 \n",
       "Q 1263 -91 848 271 \n",
       "Q 434 634 434 1313 \n",
       "Q 434 1759 690 2068 \n",
       "Q 947 2378 1403 2484 \n",
       "z\n",
       "M 1172 3481 \n",
       "Q 1172 3119 1398 2916 \n",
       "Q 1625 2713 2034 2713 \n",
       "Q 2441 2713 2670 2916 \n",
       "Q 2900 3119 2900 3481 \n",
       "Q 2900 3844 2670 4047 \n",
       "Q 2441 4250 2034 4250 \n",
       "Q 1625 4250 1398 4047 \n",
       "Q 1172 3844 1172 3481 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-38\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m858c29fe28\" x=\"39.65\" y=\"134.528631\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 1000 -->\n",
       "      <g transform=\"translate(7.2 138.327849) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"127.246094\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"190.869141\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 39.65 149.537454 \n",
       "L 39.65 10.937454 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 219.508824 149.537454 \n",
       "L 219.508824 10.937454 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 39.65 149.537454 \n",
       "L 219.508824 149.537454 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 39.65 10.937454 \n",
       "L 219.508824 10.937454 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p25e3df5463\">\n",
       "   <rect x=\"39.65\" y=\"10.937454\" width=\"179.858824\" height=\"138.6\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 350x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "d2l.set_figsize()\n",
    "print('input image shape:', img.permute(1, 2, 0).shape)\n",
    "d2l.plt.imshow(img.permute(1, 2, 0).numpy());\n",
    "print('output image shape:', out_img.shape)\n",
    "d2l.plt.imshow(out_img.numpy());"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "fc88bb36",
   "metadata": {},
   "outputs": [],
   "source": [
    "W = bilinear_kernel(num_classes, num_classes, 64)\n",
    "net[-1].weight.set_data(W);"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6b5ca001",
   "metadata": {},
   "source": [
    "### 13.11.3. 读取数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "4c8858d5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "read 1114 examples\n",
      "read 1078 examples\n"
     ]
    }
   ],
   "source": [
    "batch_size, crop_size = 32, (320, 480)\n",
    "train_iter, test_iter = d2l.load_data_voc(batch_size, crop_size)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e590388a",
   "metadata": {},
   "source": [
    "### 13.11.4. 训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c2a710e0",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[WARNING] ME(89670:47623503916416,MainProcess):2023-03-03-02:58:17.413.36 [mindspore/dataset/engine/datasets_user_defined.py:805] GeneratorDataset's num_parallel_workers: 4 is too large which may cause a lot of memory occupation (>85%) or out of memory(OOM) during multiprocessing. Therefore, it is recommended to reduce num_parallel_workers to 1 or smaller.\n"
     ]
    },
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "Cell \u001b[0;32mIn[12], line 6\u001b[0m\n\u001b[1;32m      4\u001b[0m num_epochs, lr, wd \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m5\u001b[39m, \u001b[38;5;241m0.001\u001b[39m, \u001b[38;5;241m1e-3\u001b[39m\n\u001b[1;32m      5\u001b[0m trainer \u001b[38;5;241m=\u001b[39m nn\u001b[38;5;241m.\u001b[39mSGD(net\u001b[38;5;241m.\u001b[39mtrainable_params(), learning_rate\u001b[38;5;241m=\u001b[39mlr, weight_decay\u001b[38;5;241m=\u001b[39mwd)\n\u001b[0;32m----> 6\u001b[0m \u001b[43md2l\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain_ch13\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnet\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrain_iter\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtest_iter\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mloss\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrainer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_epochs\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/python/mindspore/d2l/chapter_computer_vision_jupyter/d2l/mindspore.py:2117\u001b[0m, in \u001b[0;36mtrain_ch13\u001b[0;34m(net, train_iter, test_iter, loss, trainer, num_epochs)\u001b[0m\n\u001b[1;32m   2113\u001b[0m         \u001b[38;5;28;01mif\u001b[39;00m (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m%\u001b[39m (num_batches \u001b[38;5;241m/\u001b[39m\u001b[38;5;241m/\u001b[39m \u001b[38;5;241m5\u001b[39m) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m \u001b[38;5;129;01mor\u001b[39;00m i \u001b[38;5;241m==\u001b[39m num_batches \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m   2114\u001b[0m             animator\u001b[38;5;241m.\u001b[39madd(epoch \u001b[38;5;241m+\u001b[39m (i \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m) \u001b[38;5;241m/\u001b[39m num_batches,\n\u001b[1;32m   2115\u001b[0m                          (metric[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m/\u001b[39m metric[\u001b[38;5;241m2\u001b[39m], metric[\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m/\u001b[39m metric[\u001b[38;5;241m3\u001b[39m],\n\u001b[1;32m   2116\u001b[0m                           \u001b[38;5;28;01mNone\u001b[39;00m))\n\u001b[0;32m-> 2117\u001b[0m     test_acc \u001b[38;5;241m=\u001b[39m \u001b[43md2l\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mevaluate_accuracy_gpu\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnet\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtest_iter\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m   2118\u001b[0m     animator\u001b[38;5;241m.\u001b[39madd(epoch \u001b[38;5;241m+\u001b[39m \u001b[38;5;241m1\u001b[39m, (\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28;01mNone\u001b[39;00m, test_acc))\n\u001b[1;32m   2119\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mloss \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmetric[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;250m \u001b[39m\u001b[38;5;241m/\u001b[39m\u001b[38;5;250m \u001b[39mmetric[\u001b[38;5;241m2\u001b[39m]\u001b[38;5;132;01m:\u001b[39;00m\u001b[38;5;124m.3f\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, train acc \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m   2120\u001b[0m       \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mmetric[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;250m \u001b[39m\u001b[38;5;241m/\u001b[39m\u001b[38;5;250m \u001b[39mmetric[\u001b[38;5;241m3\u001b[39m]\u001b[38;5;132;01m:\u001b[39;00m\u001b[38;5;124m.3f\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m, test acc \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mtest_acc\u001b[38;5;132;01m:\u001b[39;00m\u001b[38;5;124m.3f\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m'\u001b[39m)\n",
      "File \u001b[0;32m~/python/mindspore/d2l/chapter_computer_vision_jupyter/d2l/mindspore.py:482\u001b[0m, in \u001b[0;36mevaluate_accuracy_gpu\u001b[0;34m(net, dataset, device)\u001b[0m\n\u001b[1;32m    480\u001b[0m net\u001b[38;5;241m.\u001b[39mset_train(\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m    481\u001b[0m metric \u001b[38;5;241m=\u001b[39m Accumulator(\u001b[38;5;241m2\u001b[39m)\n\u001b[0;32m--> 482\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m X, y \u001b[38;5;129;01min\u001b[39;00m dataset\u001b[38;5;241m.\u001b[39mcreate_tuple_iterator():\n\u001b[1;32m    483\u001b[0m     metric\u001b[38;5;241m.\u001b[39madd(accuracy(net(X), y), y\u001b[38;5;241m.\u001b[39msize)\n\u001b[1;32m    484\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m metric[\u001b[38;5;241m0\u001b[39m] \u001b[38;5;241m/\u001b[39m metric[\u001b[38;5;241m1\u001b[39m]\n",
      "File \u001b[0;32m~/software/anaconda3/envs/mindspore2.0/lib/python3.9/site-packages/mindspore/dataset/engine/iterators.py:145\u001b[0m, in \u001b[0;36mIterator.__next__\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    142\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mIterator does not have a running C++ pipeline.\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m    144\u001b[0m \u001b[38;5;66;03m# Note offload is applied inside _get_next() if applicable since get_next converts to output format\u001b[39;00m\n\u001b[0;32m--> 145\u001b[0m data \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_get_next\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    146\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m data:\n\u001b[1;32m    147\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m__index \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m:\n",
      "File \u001b[0;32m~/software/anaconda3/envs/mindspore2.0/lib/python3.9/site-packages/mindspore/dataset/engine/iterators.py:258\u001b[0m, in \u001b[0;36mTupleIterator._get_next\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    250\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m    251\u001b[0m \u001b[38;5;124;03mReturns the next record in the dataset as a list\u001b[39;00m\n\u001b[1;32m    252\u001b[0m \n\u001b[1;32m    253\u001b[0m \u001b[38;5;124;03mReturns:\u001b[39;00m\n\u001b[1;32m    254\u001b[0m \u001b[38;5;124;03m    List, the next record in the dataset.\u001b[39;00m\n\u001b[1;32m    255\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m    257\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moffload_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 258\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_transform_md_to_output(t) \u001b[38;5;28;01mfor\u001b[39;00m t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iterator\u001b[38;5;241m.\u001b[39mGetNextAsList()]\n\u001b[1;32m    259\u001b[0m data \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_transform_md_to_tensor(t) \u001b[38;5;28;01mfor\u001b[39;00m t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iterator\u001b[38;5;241m.\u001b[39mGetNextAsList()]\n\u001b[1;32m    260\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data:\n",
      "File \u001b[0;32m~/software/anaconda3/envs/mindspore2.0/lib/python3.9/site-packages/mindspore/dataset/engine/iterators.py:258\u001b[0m, in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m    250\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m    251\u001b[0m \u001b[38;5;124;03mReturns the next record in the dataset as a list\u001b[39;00m\n\u001b[1;32m    252\u001b[0m \n\u001b[1;32m    253\u001b[0m \u001b[38;5;124;03mReturns:\u001b[39;00m\n\u001b[1;32m    254\u001b[0m \u001b[38;5;124;03m    List, the next record in the dataset.\u001b[39;00m\n\u001b[1;32m    255\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m    257\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39moffload_model \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m--> 258\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m [\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_transform_md_to_output\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;28;01mfor\u001b[39;00m t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iterator\u001b[38;5;241m.\u001b[39mGetNextAsList()]\n\u001b[1;32m    259\u001b[0m data \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_transform_md_to_tensor(t) \u001b[38;5;28;01mfor\u001b[39;00m t \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_iterator\u001b[38;5;241m.\u001b[39mGetNextAsList()]\n\u001b[1;32m    260\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data:\n",
      "File \u001b[0;32m~/software/anaconda3/envs/mindspore2.0/lib/python3.9/site-packages/mindspore/dataset/engine/iterators.py:189\u001b[0m, in \u001b[0;36mIterator._transform_md_to_output\u001b[0;34m(self, t)\u001b[0m\n\u001b[1;32m    187\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_output_numpy:\n\u001b[1;32m    188\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m t\u001b[38;5;241m.\u001b[39mas_array()\n\u001b[0;32m--> 189\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_transform_md_to_tensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mt\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/software/anaconda3/envs/mindspore2.0/lib/python3.9/site-packages/mindspore/dataset/engine/iterators.py:194\u001b[0m, in \u001b[0;36mIterator._transform_md_to_tensor\u001b[0;34m(self, t)\u001b[0m\n\u001b[1;32m    192\u001b[0m array \u001b[38;5;241m=\u001b[39m t\u001b[38;5;241m.\u001b[39mas_array()\n\u001b[1;32m    193\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_do_copy:\n\u001b[0;32m--> 194\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mTensor\u001b[49m\u001b[43m(\u001b[49m\u001b[43marray\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    195\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m Tensor\u001b[38;5;241m.\u001b[39mfrom_numpy(array)\n",
      "File \u001b[0;32m~/software/anaconda3/envs/mindspore2.0/lib/python3.9/site-packages/mindspore/common/tensor.py:196\u001b[0m, in \u001b[0;36mTensor.__init__\u001b[0;34m(self, input_data, dtype, shape, init, internal, const_arg)\u001b[0m\n\u001b[1;32m    194\u001b[0m             Tensor_\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__init__\u001b[39m(\u001b[38;5;28mself\u001b[39m, input_data, dtype)\n\u001b[1;32m    195\u001b[0m         \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 196\u001b[0m             \u001b[43mTensor_\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__init__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minput_data\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    197\u001b[0m         validator\u001b[38;5;241m.\u001b[39mcheck_value_type(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mconst_arg\u001b[39m\u001b[38;5;124m'\u001b[39m, const_arg, \u001b[38;5;28mbool\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mTensor\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m    199\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconst_arg \u001b[38;5;241m=\u001b[39m const_arg\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    },
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"235.784375pt\" height=\"187.155469pt\" viewBox=\"0 0 235.784375 187.155469\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-03-03T02:58:29.712147</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.6.3, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 187.155469 \n",
       "L 235.784375 187.155469 \n",
       "L 235.784375 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 30.103125 149.599219 \n",
       "L 225.403125 149.599219 \n",
       "L 225.403125 10.999219 \n",
       "L 30.103125 10.999219 \n",
       "z\n",
       "\" style=\"fill: #ffffff\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <path d=\"M 30.103125 149.599219 \n",
       "L 30.103125 10.999219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_2\">\n",
       "      <defs>\n",
       "       <path id=\"ma64de953e4\" d=\"M 0 0 \n",
       "L 0 3.5 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma64de953e4\" x=\"30.103125\" y=\"149.599219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 1 -->\n",
       "      <g transform=\"translate(26.921875 164.197656) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-31\" d=\"M 794 531 \n",
       "L 1825 531 \n",
       "L 1825 4091 \n",
       "L 703 3866 \n",
       "L 703 4441 \n",
       "L 1819 4666 \n",
       "L 2450 4666 \n",
       "L 2450 531 \n",
       "L 3481 531 \n",
       "L 3481 0 \n",
       "L 794 0 \n",
       "L 794 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <path d=\"M 78.928125 149.599219 \n",
       "L 78.928125 10.999219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_4\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma64de953e4\" x=\"78.928125\" y=\"149.599219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 2 -->\n",
       "      <g transform=\"translate(75.746875 164.197656) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-32\" d=\"M 1228 531 \n",
       "L 3431 531 \n",
       "L 3431 0 \n",
       "L 469 0 \n",
       "L 469 531 \n",
       "Q 828 903 1448 1529 \n",
       "Q 2069 2156 2228 2338 \n",
       "Q 2531 2678 2651 2914 \n",
       "Q 2772 3150 2772 3378 \n",
       "Q 2772 3750 2511 3984 \n",
       "Q 2250 4219 1831 4219 \n",
       "Q 1534 4219 1204 4116 \n",
       "Q 875 4013 500 3803 \n",
       "L 500 4441 \n",
       "Q 881 4594 1212 4672 \n",
       "Q 1544 4750 1819 4750 \n",
       "Q 2544 4750 2975 4387 \n",
       "Q 3406 4025 3406 3419 \n",
       "Q 3406 3131 3298 2873 \n",
       "Q 3191 2616 2906 2266 \n",
       "Q 2828 2175 2409 1742 \n",
       "Q 1991 1309 1228 531 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-32\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <path d=\"M 127.753125 149.599219 \n",
       "L 127.753125 10.999219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_6\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma64de953e4\" x=\"127.753125\" y=\"149.599219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 3 -->\n",
       "      <g transform=\"translate(124.571875 164.197656) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-33\" d=\"M 2597 2516 \n",
       "Q 3050 2419 3304 2112 \n",
       "Q 3559 1806 3559 1356 \n",
       "Q 3559 666 3084 287 \n",
       "Q 2609 -91 1734 -91 \n",
       "Q 1441 -91 1130 -33 \n",
       "Q 819 25 488 141 \n",
       "L 488 750 \n",
       "Q 750 597 1062 519 \n",
       "Q 1375 441 1716 441 \n",
       "Q 2309 441 2620 675 \n",
       "Q 2931 909 2931 1356 \n",
       "Q 2931 1769 2642 2001 \n",
       "Q 2353 2234 1838 2234 \n",
       "L 1294 2234 \n",
       "L 1294 2753 \n",
       "L 1863 2753 \n",
       "Q 2328 2753 2575 2939 \n",
       "Q 2822 3125 2822 3475 \n",
       "Q 2822 3834 2567 4026 \n",
       "Q 2313 4219 1838 4219 \n",
       "Q 1578 4219 1281 4162 \n",
       "Q 984 4106 628 3988 \n",
       "L 628 4550 \n",
       "Q 988 4650 1302 4700 \n",
       "Q 1616 4750 1894 4750 \n",
       "Q 2613 4750 3031 4423 \n",
       "Q 3450 4097 3450 3541 \n",
       "Q 3450 3153 3228 2886 \n",
       "Q 3006 2619 2597 2516 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-33\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <path d=\"M 176.578125 149.599219 \n",
       "L 176.578125 10.999219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_8\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma64de953e4\" x=\"176.578125\" y=\"149.599219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 4 -->\n",
       "      <g transform=\"translate(173.396875 164.197656) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-34\" d=\"M 2419 4116 \n",
       "L 825 1625 \n",
       "L 2419 1625 \n",
       "L 2419 4116 \n",
       "z\n",
       "M 2253 4666 \n",
       "L 3047 4666 \n",
       "L 3047 1625 \n",
       "L 3713 1625 \n",
       "L 3713 1100 \n",
       "L 3047 1100 \n",
       "L 3047 0 \n",
       "L 2419 0 \n",
       "L 2419 1100 \n",
       "L 313 1100 \n",
       "L 313 1709 \n",
       "L 2253 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-34\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <path d=\"M 225.403125 149.599219 \n",
       "L 225.403125 10.999219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_10\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#ma64de953e4\" x=\"225.403125\" y=\"149.599219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 5 -->\n",
       "      <g transform=\"translate(222.221875 164.197656) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-35\" d=\"M 691 4666 \n",
       "L 3169 4666 \n",
       "L 3169 4134 \n",
       "L 1269 4134 \n",
       "L 1269 2991 \n",
       "Q 1406 3038 1543 3061 \n",
       "Q 1681 3084 1819 3084 \n",
       "Q 2600 3084 3056 2656 \n",
       "Q 3513 2228 3513 1497 \n",
       "Q 3513 744 3044 326 \n",
       "Q 2575 -91 1722 -91 \n",
       "Q 1428 -91 1123 -41 \n",
       "Q 819 9 494 109 \n",
       "L 494 744 \n",
       "Q 775 591 1075 516 \n",
       "Q 1375 441 1709 441 \n",
       "Q 2250 441 2565 725 \n",
       "Q 2881 1009 2881 1497 \n",
       "Q 2881 1984 2565 2268 \n",
       "Q 2250 2553 1709 2553 \n",
       "Q 1456 2553 1204 2497 \n",
       "Q 953 2441 691 2322 \n",
       "L 691 4666 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-35\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"text_6\">\n",
       "     <!-- epoch -->\n",
       "     <g transform=\"translate(112.525 177.875781) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-65\" d=\"M 3597 1894 \n",
       "L 3597 1613 \n",
       "L 953 1613 \n",
       "Q 991 1019 1311 708 \n",
       "Q 1631 397 2203 397 \n",
       "Q 2534 397 2845 478 \n",
       "Q 3156 559 3463 722 \n",
       "L 3463 178 \n",
       "Q 3153 47 2828 -22 \n",
       "Q 2503 -91 2169 -91 \n",
       "Q 1331 -91 842 396 \n",
       "Q 353 884 353 1716 \n",
       "Q 353 2575 817 3079 \n",
       "Q 1281 3584 2069 3584 \n",
       "Q 2775 3584 3186 3129 \n",
       "Q 3597 2675 3597 1894 \n",
       "z\n",
       "M 3022 2063 \n",
       "Q 3016 2534 2758 2815 \n",
       "Q 2500 3097 2075 3097 \n",
       "Q 1594 3097 1305 2825 \n",
       "Q 1016 2553 972 2059 \n",
       "L 3022 2063 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-70\" d=\"M 1159 525 \n",
       "L 1159 -1331 \n",
       "L 581 -1331 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2969 \n",
       "Q 1341 3281 1617 3432 \n",
       "Q 1894 3584 2278 3584 \n",
       "Q 2916 3584 3314 3078 \n",
       "Q 3713 2572 3713 1747 \n",
       "Q 3713 922 3314 415 \n",
       "Q 2916 -91 2278 -91 \n",
       "Q 1894 -91 1617 61 \n",
       "Q 1341 213 1159 525 \n",
       "z\n",
       "M 3116 1747 \n",
       "Q 3116 2381 2855 2742 \n",
       "Q 2594 3103 2138 3103 \n",
       "Q 1681 3103 1420 2742 \n",
       "Q 1159 2381 1159 1747 \n",
       "Q 1159 1113 1420 752 \n",
       "Q 1681 391 2138 391 \n",
       "Q 2594 391 2855 752 \n",
       "Q 3116 1113 3116 1747 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6f\" d=\"M 1959 3097 \n",
       "Q 1497 3097 1228 2736 \n",
       "Q 959 2375 959 1747 \n",
       "Q 959 1119 1226 758 \n",
       "Q 1494 397 1959 397 \n",
       "Q 2419 397 2687 759 \n",
       "Q 2956 1122 2956 1747 \n",
       "Q 2956 2369 2687 2733 \n",
       "Q 2419 3097 1959 3097 \n",
       "z\n",
       "M 1959 3584 \n",
       "Q 2709 3584 3137 3096 \n",
       "Q 3566 2609 3566 1747 \n",
       "Q 3566 888 3137 398 \n",
       "Q 2709 -91 1959 -91 \n",
       "Q 1206 -91 779 398 \n",
       "Q 353 888 353 1747 \n",
       "Q 353 2609 779 3096 \n",
       "Q 1206 3584 1959 3584 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-63\" d=\"M 3122 3366 \n",
       "L 3122 2828 \n",
       "Q 2878 2963 2633 3030 \n",
       "Q 2388 3097 2138 3097 \n",
       "Q 1578 3097 1268 2742 \n",
       "Q 959 2388 959 1747 \n",
       "Q 959 1106 1268 751 \n",
       "Q 1578 397 2138 397 \n",
       "Q 2388 397 2633 464 \n",
       "Q 2878 531 3122 666 \n",
       "L 3122 134 \n",
       "Q 2881 22 2623 -34 \n",
       "Q 2366 -91 2075 -91 \n",
       "Q 1284 -91 818 406 \n",
       "Q 353 903 353 1747 \n",
       "Q 353 2603 823 3093 \n",
       "Q 1294 3584 2113 3584 \n",
       "Q 2378 3584 2631 3529 \n",
       "Q 2884 3475 3122 3366 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-68\" d=\"M 3513 2113 \n",
       "L 3513 0 \n",
       "L 2938 0 \n",
       "L 2938 2094 \n",
       "Q 2938 2591 2744 2837 \n",
       "Q 2550 3084 2163 3084 \n",
       "Q 1697 3084 1428 2787 \n",
       "Q 1159 2491 1159 1978 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 4863 \n",
       "L 1159 4863 \n",
       "L 1159 2956 \n",
       "Q 1366 3272 1645 3428 \n",
       "Q 1925 3584 2291 3584 \n",
       "Q 2894 3584 3203 3211 \n",
       "Q 3513 2838 3513 2113 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-65\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-70\" x=\"61.523438\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6f\" x=\"125\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"186.181641\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-68\" x=\"241.162109\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <path d=\"M 30.103125 149.599219 \n",
       "L 225.403125 149.599219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_12\">\n",
       "      <defs>\n",
       "       <path id=\"m913d3756c8\" d=\"M 0 0 \n",
       "L -3.5 0 \n",
       "\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </defs>\n",
       "      <g>\n",
       "       <use xlink:href=\"#m913d3756c8\" x=\"30.103125\" y=\"149.599219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 0.0 -->\n",
       "      <g transform=\"translate(7.2 153.398438) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-30\" d=\"M 2034 4250 \n",
       "Q 1547 4250 1301 3770 \n",
       "Q 1056 3291 1056 2328 \n",
       "Q 1056 1369 1301 889 \n",
       "Q 1547 409 2034 409 \n",
       "Q 2525 409 2770 889 \n",
       "Q 3016 1369 3016 2328 \n",
       "Q 3016 3291 2770 3770 \n",
       "Q 2525 4250 2034 4250 \n",
       "z\n",
       "M 2034 4750 \n",
       "Q 2819 4750 3233 4129 \n",
       "Q 3647 3509 3647 2328 \n",
       "Q 3647 1150 3233 529 \n",
       "Q 2819 -91 2034 -91 \n",
       "Q 1250 -91 836 529 \n",
       "Q 422 1150 422 2328 \n",
       "Q 422 3509 836 4129 \n",
       "Q 1250 4750 2034 4750 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "        <path id=\"DejaVuSans-2e\" d=\"M 684 794 \n",
       "L 1344 794 \n",
       "L 1344 0 \n",
       "L 684 0 \n",
       "L 684 794 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <path d=\"M 30.103125 121.879219 \n",
       "L 225.403125 121.879219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_14\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m913d3756c8\" x=\"30.103125\" y=\"121.879219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 0.2 -->\n",
       "      <g transform=\"translate(7.2 125.678438) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-32\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <path d=\"M 30.103125 94.159219 \n",
       "L 225.403125 94.159219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_16\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m913d3756c8\" x=\"30.103125\" y=\"94.159219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 0.4 -->\n",
       "      <g transform=\"translate(7.2 97.958438) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-34\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <path d=\"M 30.103125 66.439219 \n",
       "L 225.403125 66.439219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_18\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m913d3756c8\" x=\"30.103125\" y=\"66.439219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_10\">\n",
       "      <!-- 0.6 -->\n",
       "      <g transform=\"translate(7.2 70.238437) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-36\" d=\"M 2113 2584 \n",
       "Q 1688 2584 1439 2293 \n",
       "Q 1191 2003 1191 1497 \n",
       "Q 1191 994 1439 701 \n",
       "Q 1688 409 2113 409 \n",
       "Q 2538 409 2786 701 \n",
       "Q 3034 994 3034 1497 \n",
       "Q 3034 2003 2786 2293 \n",
       "Q 2538 2584 2113 2584 \n",
       "z\n",
       "M 3366 4563 \n",
       "L 3366 3988 \n",
       "Q 3128 4100 2886 4159 \n",
       "Q 2644 4219 2406 4219 \n",
       "Q 1781 4219 1451 3797 \n",
       "Q 1122 3375 1075 2522 \n",
       "Q 1259 2794 1537 2939 \n",
       "Q 1816 3084 2150 3084 \n",
       "Q 2853 3084 3261 2657 \n",
       "Q 3669 2231 3669 1497 \n",
       "Q 3669 778 3244 343 \n",
       "Q 2819 -91 2113 -91 \n",
       "Q 1303 -91 875 529 \n",
       "Q 447 1150 447 2328 \n",
       "Q 447 3434 972 4092 \n",
       "Q 1497 4750 2381 4750 \n",
       "Q 2619 4750 2861 4703 \n",
       "Q 3103 4656 3366 4563 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-36\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <path d=\"M 30.103125 38.719219 \n",
       "L 225.403125 38.719219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_20\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m913d3756c8\" x=\"30.103125\" y=\"38.719219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- 0.8 -->\n",
       "      <g transform=\"translate(7.2 42.518438) scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path id=\"DejaVuSans-38\" d=\"M 2034 2216 \n",
       "Q 1584 2216 1326 1975 \n",
       "Q 1069 1734 1069 1313 \n",
       "Q 1069 891 1326 650 \n",
       "Q 1584 409 2034 409 \n",
       "Q 2484 409 2743 651 \n",
       "Q 3003 894 3003 1313 \n",
       "Q 3003 1734 2745 1975 \n",
       "Q 2488 2216 2034 2216 \n",
       "z\n",
       "M 1403 2484 \n",
       "Q 997 2584 770 2862 \n",
       "Q 544 3141 544 3541 \n",
       "Q 544 4100 942 4425 \n",
       "Q 1341 4750 2034 4750 \n",
       "Q 2731 4750 3128 4425 \n",
       "Q 3525 4100 3525 3541 \n",
       "Q 3525 3141 3298 2862 \n",
       "Q 3072 2584 2669 2484 \n",
       "Q 3125 2378 3379 2068 \n",
       "Q 3634 1759 3634 1313 \n",
       "Q 3634 634 3220 271 \n",
       "Q 2806 -91 2034 -91 \n",
       "Q 1263 -91 848 271 \n",
       "Q 434 634 434 1313 \n",
       "Q 434 1759 690 2068 \n",
       "Q 947 2378 1403 2484 \n",
       "z\n",
       "M 1172 3481 \n",
       "Q 1172 3119 1398 2916 \n",
       "Q 1625 2713 2034 2713 \n",
       "Q 2441 2713 2670 2916 \n",
       "Q 2900 3119 2900 3481 \n",
       "Q 2900 3844 2670 4047 \n",
       "Q 2441 4250 2034 4250 \n",
       "Q 1625 4250 1398 4047 \n",
       "Q 1172 3844 1172 3481 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#DejaVuSans-30\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-38\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_6\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <path d=\"M 30.103125 10.999219 \n",
       "L 225.403125 10.999219 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #b0b0b0; stroke-width: 0.8; stroke-linecap: square\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_22\">\n",
       "      <g>\n",
       "       <use xlink:href=\"#m913d3756c8\" x=\"30.103125\" y=\"10.999219\" style=\"stroke: #000000; stroke-width: 0.8\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 1.0 -->\n",
       "      <g transform=\"translate(7.2 14.798438) scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#DejaVuSans-31\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-2e\" x=\"63.623047\"/>\n",
       "       <use xlink:href=\"#DejaVuSans-30\" x=\"95.410156\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_23\">\n",
       "    <path d=\"M 34.353467 -1 \n",
       "L 38.719301 26.083049 \n",
       "L 47.335478 31.682612 \n",
       "L 55.951654 33.394817 \n",
       "L 64.567831 37.673235 \n",
       "L 73.184007 38.583817 \n",
       "L 78.928125 39.964258 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_24\">\n",
       "    <path d=\"M -1 57.574299 \n",
       "L 7.126654 54.288701 \n",
       "L 15.742831 52.20955 \n",
       "L 24.359007 51.095703 \n",
       "L 30.103125 49.474461 \n",
       "L 38.719301 42.243571 \n",
       "L 47.335478 40.338028 \n",
       "L 55.951654 40.220473 \n",
       "L 64.567831 39.149095 \n",
       "L 73.184007 39.051872 \n",
       "L 78.928125 38.839601 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #bf00bf; stroke-width: 1.5\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_25\">\n",
       "    <path d=\"M 30.103125 41.728205 \n",
       "\" clip-path=\"url(#peb5b3b7084)\" style=\"fill: none; stroke-dasharray: 9.6,2.4,1.5,2.4; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 30.103125 149.599219 \n",
       "L 30.103125 10.999219 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 225.403125 149.599219 \n",
       "L 225.403125 10.999219 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 30.103125 149.599219 \n",
       "L 225.403125 149.599219 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 30.103125 10.999219 \n",
       "L 225.403125 10.999219 \n",
       "\" style=\"fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square\"/>\n",
       "   </g>\n",
       "   <g id=\"legend_1\">\n",
       "    <g id=\"patch_7\">\n",
       "     <path d=\"M 140.634375 63.033594 \n",
       "L 218.403125 63.033594 \n",
       "Q 220.403125 63.033594 220.403125 61.033594 \n",
       "L 220.403125 17.999219 \n",
       "Q 220.403125 15.999219 218.403125 15.999219 \n",
       "L 140.634375 15.999219 \n",
       "Q 138.634375 15.999219 138.634375 17.999219 \n",
       "L 138.634375 61.033594 \n",
       "Q 138.634375 63.033594 140.634375 63.033594 \n",
       "z\n",
       "\" style=\"fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter\"/>\n",
       "    </g>\n",
       "    <g id=\"line2d_26\">\n",
       "     <path d=\"M 142.634375 24.097656 \n",
       "L 152.634375 24.097656 \n",
       "L 162.634375 24.097656 \n",
       "\" style=\"fill: none; stroke: #1f77b4; stroke-width: 1.5; stroke-linecap: square\"/>\n",
       "    </g>\n",
       "    <g id=\"text_13\">\n",
       "     <!-- train loss -->\n",
       "     <g transform=\"translate(170.634375 27.597656) scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path id=\"DejaVuSans-74\" d=\"M 1172 4494 \n",
       "L 1172 3500 \n",
       "L 2356 3500 \n",
       "L 2356 3053 \n",
       "L 1172 3053 \n",
       "L 1172 1153 \n",
       "Q 1172 725 1289 603 \n",
       "Q 1406 481 1766 481 \n",
       "L 2356 481 \n",
       "L 2356 0 \n",
       "L 1766 0 \n",
       "Q 1100 0 847 248 \n",
       "Q 594 497 594 1153 \n",
       "L 594 3053 \n",
       "L 172 3053 \n",
       "L 172 3500 \n",
       "L 594 3500 \n",
       "L 594 4494 \n",
       "L 1172 4494 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-72\" d=\"M 2631 2963 \n",
       "Q 2534 3019 2420 3045 \n",
       "Q 2306 3072 2169 3072 \n",
       "Q 1681 3072 1420 2755 \n",
       "Q 1159 2438 1159 1844 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2956 \n",
       "Q 1341 3275 1631 3429 \n",
       "Q 1922 3584 2338 3584 \n",
       "Q 2397 3584 2469 3576 \n",
       "Q 2541 3569 2628 3553 \n",
       "L 2631 2963 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-61\" d=\"M 2194 1759 \n",
       "Q 1497 1759 1228 1600 \n",
       "Q 959 1441 959 1056 \n",
       "Q 959 750 1161 570 \n",
       "Q 1363 391 1709 391 \n",
       "Q 2188 391 2477 730 \n",
       "Q 2766 1069 2766 1631 \n",
       "L 2766 1759 \n",
       "L 2194 1759 \n",
       "z\n",
       "M 3341 1997 \n",
       "L 3341 0 \n",
       "L 2766 0 \n",
       "L 2766 531 \n",
       "Q 2569 213 2275 61 \n",
       "Q 1981 -91 1556 -91 \n",
       "Q 1019 -91 701 211 \n",
       "Q 384 513 384 1019 \n",
       "Q 384 1609 779 1909 \n",
       "Q 1175 2209 1959 2209 \n",
       "L 2766 2209 \n",
       "L 2766 2266 \n",
       "Q 2766 2663 2505 2880 \n",
       "Q 2244 3097 1772 3097 \n",
       "Q 1472 3097 1187 3025 \n",
       "Q 903 2953 641 2809 \n",
       "L 641 3341 \n",
       "Q 956 3463 1253 3523 \n",
       "Q 1550 3584 1831 3584 \n",
       "Q 2591 3584 2966 3190 \n",
       "Q 3341 2797 3341 1997 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-69\" d=\"M 603 3500 \n",
       "L 1178 3500 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 3500 \n",
       "z\n",
       "M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 4134 \n",
       "L 603 4134 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6e\" d=\"M 3513 2113 \n",
       "L 3513 0 \n",
       "L 2938 0 \n",
       "L 2938 2094 \n",
       "Q 2938 2591 2744 2837 \n",
       "Q 2550 3084 2163 3084 \n",
       "Q 1697 3084 1428 2787 \n",
       "Q 1159 2491 1159 1978 \n",
       "L 1159 0 \n",
       "L 581 0 \n",
       "L 581 3500 \n",
       "L 1159 3500 \n",
       "L 1159 2956 \n",
       "Q 1366 3272 1645 3428 \n",
       "Q 1925 3584 2291 3584 \n",
       "Q 2894 3584 3203 3211 \n",
       "Q 3513 2838 3513 2113 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-20\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-6c\" d=\"M 603 4863 \n",
       "L 1178 4863 \n",
       "L 1178 0 \n",
       "L 603 0 \n",
       "L 603 4863 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "       <path id=\"DejaVuSans-73\" d=\"M 2834 3397 \n",
       "L 2834 2853 \n",
       "Q 2591 2978 2328 3040 \n",
       "Q 2066 3103 1784 3103 \n",
       "Q 1356 3103 1142 2972 \n",
       "Q 928 2841 928 2578 \n",
       "Q 928 2378 1081 2264 \n",
       "Q 1234 2150 1697 2047 \n",
       "L 1894 2003 \n",
       "Q 2506 1872 2764 1633 \n",
       "Q 3022 1394 3022 966 \n",
       "Q 3022 478 2636 193 \n",
       "Q 2250 -91 1575 -91 \n",
       "Q 1294 -91 989 -36 \n",
       "Q 684 19 347 128 \n",
       "L 347 722 \n",
       "Q 666 556 975 473 \n",
       "Q 1284 391 1588 391 \n",
       "Q 1994 391 2212 530 \n",
       "Q 2431 669 2431 922 \n",
       "Q 2431 1156 2273 1281 \n",
       "Q 2116 1406 1581 1522 \n",
       "L 1381 1569 \n",
       "Q 847 1681 609 1914 \n",
       "Q 372 2147 372 2553 \n",
       "Q 372 3047 722 3315 \n",
       "Q 1072 3584 1716 3584 \n",
       "Q 2034 3584 2315 3537 \n",
       "Q 2597 3491 2834 3397 \n",
       "z\n",
       "\" transform=\"scale(0.015625)\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-20\" x=\"232.763672\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6c\" x=\"264.550781\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6f\" x=\"292.333984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-73\" x=\"353.515625\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-73\" x=\"405.615234\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"line2d_27\">\n",
       "     <path d=\"M 142.634375 38.775781 \n",
       "L 152.634375 38.775781 \n",
       "L 162.634375 38.775781 \n",
       "\" style=\"fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #bf00bf; stroke-width: 1.5\"/>\n",
       "    </g>\n",
       "    <g id=\"text_14\">\n",
       "     <!-- train acc -->\n",
       "     <g transform=\"translate(170.634375 42.275781) scale(0.1 -0.1)\">\n",
       "      <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-72\" x=\"39.208984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"80.322266\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-69\" x=\"141.601562\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-6e\" x=\"169.384766\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-20\" x=\"232.763672\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"264.550781\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"325.830078\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"380.810547\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"line2d_28\">\n",
       "     <path d=\"M 142.634375 53.453906 \n",
       "L 152.634375 53.453906 \n",
       "L 162.634375 53.453906 \n",
       "\" style=\"fill: none; stroke-dasharray: 9.6,2.4,1.5,2.4; stroke-dashoffset: 0; stroke: #008000; stroke-width: 1.5\"/>\n",
       "    </g>\n",
       "    <g id=\"text_15\">\n",
       "     <!-- test acc -->\n",
       "     <g transform=\"translate(170.634375 56.953906) scale(0.1 -0.1)\">\n",
       "      <use xlink:href=\"#DejaVuSans-74\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-65\" x=\"39.208984\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-73\" x=\"100.732422\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-74\" x=\"152.832031\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-20\" x=\"192.041016\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-61\" x=\"223.828125\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"285.107422\"/>\n",
       "      <use xlink:href=\"#DejaVuSans-63\" x=\"340.087891\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"peb5b3b7084\">\n",
       "   <rect x=\"30.103125\" y=\"10.999219\" width=\"195.3\" height=\"138.6\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 350x250 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def loss(inputs, targets):\n",
    "    return F.cross_entropy(inputs, targets, reduction='none').mean(1).mean(1)\n",
    "\n",
    "num_epochs, lr, wd = 5, 0.001, 1e-3\n",
    "trainer = nn.SGD(net.trainable_params(), learning_rate=lr, weight_decay=wd)\n",
    "d2l.train_ch13(net, train_iter, test_iter, loss, trainer, num_epochs)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "62f05d07",
   "metadata": {},
   "source": [
    "### 13.11.5. 预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dda3d2c7",
   "metadata": {},
   "outputs": [],
   "source": [
    "transform = mindspore.dataset.vision.Normalize(\n",
    "            mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])\n",
    "def normalize_image(img):\n",
    "    return transform(img.astype('float32') / 255)\n",
    "    \n",
    "#     d2l.tensor(X.transpose(2, 0, 1)).unsqueeze(0)\n",
    "def predict(img):\n",
    "#     train_iter.children[0].children[0].source.normalize_image()\n",
    "    X = d2l.tensor(normalize_image(img).transpose(2, 0, 1)).unsqueeze(0)\n",
    "    pred = net(X).argmax(axis=1)\n",
    "    return pred.reshape(pred.shape[1], pred.shape[2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "44757494",
   "metadata": {},
   "outputs": [],
   "source": [
    "colormap = mindspore.Tensor(d2l.VOC_COLORMAP)\n",
    "def label2image(pred):\n",
    "    X = pred.long()\n",
    "    return colormap[X, :]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "2807d7a6",
   "metadata": {},
   "outputs": [],
   "source": [
    "voc_dir = d2l.download_extract('voc2012', 'VOCdevkit/VOC2012')\n",
    "test_images, test_labels = d2l.read_voc_images(voc_dir, False)\n",
    "n, imgs = 4, []\n",
    "for i in range(n):\n",
    "    crop_rect = (0, 0, 320, 480)\n",
    "    X = d2l.crop(test_images[i], *crop_rect)\n",
    "    pred = label2image(predict(X))\n",
    "    imgs += [X, pred.numpy(),\n",
    "             d2l.crop(test_labels[i], *crop_rect)]\n",
    "d2l.show_images(imgs[::3] + imgs[1::3] + imgs[2::3], 3, n, scale=2);"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
